package info.fqtech.lingdemo.json;

import java.io.File;

import bean.SampleBean;
import bean.SampleBeanWithBirthday;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import org.apache.commons.io.FileUtils;
import org.json.JSONObject;

public class ReadJsonSample {
    public static void main(String[] args){
        try {
            File file=new File(ReadJsonSample.class.getResource("/sample.json").getFile());
            String content=FileUtils.readFileToString(file);
            //JSONObject只能解析为JSONObject对象，Gson可以解析为bean对象
            JSONObject jsonObject=new JSONObject(content);
            if(!jsonObject.isNull("name")){
                System.out.println("姓名是："+jsonObject.getString("name"));
            }else {
                System.out.println("没有name属性");
            }
            //通过Gson将文件中的Json转为javaBean对象
            Gson gson=new Gson();
            SampleBean sampleBean=gson.fromJson(content,SampleBean.class);
            System.out.println(sampleBean);
            //通过Gson将javaBean中的Date类型，实现个性化转化
            Gson gson1=new GsonBuilder().setDateFormat("yyyy-MM-dd").create();
            SampleBeanWithBirthday sbwb=gson1.fromJson(content,SampleBeanWithBirthday.class);
            System.out.println(sbwb.getBirthday().toLocaleString());
            //使用Gson解析List或者set类型数据，JSONObject只能处理数组
            System.out.println(sbwb.getMajor());
            //查看Majar属于什么类型(List对应结果是ArrayLsit类型，Set集合对应HashSet类型)
            System.out.println(sbwb.getMajor().getClass());

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}
